﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using HelloMinasan.Business;
using HelloMinasan.Framework.Web;

namespace HelloMinasan.Web.Song.Controllers
{
    //public class ReportController : ApplicationController
    //{
    //    //private readonly IRepository._SongReportRepository _songReportRepository;

    //    //public ReportController()
    //    //    : this(new SongReportRepository())
    //    //{
    //    //}

    //    //private ReportController(IRepository._SongReportRepository songReportRepository)
    //    //{
    //    //    this._songReportRepository = songReportRepository;
    //    //}

    //    private IUserService userService;

    //    public ReportController(IUserService userService)
    //    {
    //        this.userService = userService;
    //    }

    //    [HttpGet]
    //    public ActionResult GetReport()
    //    {
    //        return View();
    //    }

    //    [Authorize]
    //    [HttpPost]
    //    public ActionResult ReportSong(int songId, int contentType, string content)
    //    {
            
    //        string typeValue = string.Empty;
    //        switch (contentType)
    //        {
    //            case 1:
    //                typeValue = "Song is broken.";
    //                break;
    //            case 2:
    //                typeValue = "The song with title is not correct.";
    //                break;
    //            case 3:
    //                typeValue = "Violate.";
    //                break;
    //            case 4:
    //                typeValue = "Sex content.";
    //                break;
    //            default:
    //                typeValue = "Others";
    //                break;
    //        }
    //        var result = new ResultObject();
    //        _songReportRepository.AddReport(new SongReport()
    //        {
    //            ReportComment = typeValue + " - " + content,
    //            ReportType = "1",
    //            SongID = songId,
    //            ReportStatus = true,
    //            UserReport =  new UserIRepository().FindUserById(User.Identity.Name).UserId
    //        });
    //        result.Message = Resource.Song_SuccessfullyEvent;
    //        result.Result = true;

    //        return Json(result);
    //    }

    //    [HttpGet]
    //    public ActionResult GetReportAll(string type)
    //    {
    //        ViewData["ReportType"] = type;
    //        int CurrentPage = 1;
    //        if (_songReportRepository.GetAllReport(1, 10, type) != null)
    //        {
    //            IEnumerable<SongReport> model = _songReportRepository.GetAllReport(1, 10, type);
    //            ViewData["NextPageNumber"] = CurrentPage+1;
    //            ViewData["CurrentPageNumber"] = CurrentPage;
    //            ViewData["PreviousPageNumber"] = CurrentPage-1;
    //            int sum = _songReportRepository.SumReport("1", 1);
    //            int a = sum / 10;
    //            if (a * 10 < sum)
    //            {
    //                a++;
    //            }
    //            ViewData["TotalPageCount"] = a;
    //            return View(model);
    //        }
    //        else
    //        {
    //            return Redirect(Url.Content("~/Error"));
    //        }
    //    }
    //    [HttpPost]
    //    public ActionResult GetReportAll(string type, int number, int pagenumber)
    //    {
    //        ViewData["ReportType"] = type;
    //        if (_songReportRepository.GetAllReport(pagenumber, number, type) != null)
    //        {
    //            IEnumerable<SongReport> model = _songReportRepository.GetAllReport(pagenumber, number, type);
    //            ViewData["NextPageNumber"] = number + 1;
    //            ViewData["CurrentPageNumber"] = number;
    //            ViewData["PreviousPageNumber"] = number - 1;
    //            int sum = _songReportRepository.SumReportType(type);
    //            int a = sum / 10;
    //            if (a * 10 < sum)
    //            {
    //                a++;
    //            }
    //            ViewData["TotalPageCount"] = a;
    //            return View(model);
    //        }
    //        else
    //        {
    //            return Redirect(Url.Content("~/Error"));
    //        }
    //    }

    //    //load dữ liệu của song report part view
    //    public ActionResult LoadSongReport(string type, int number, int pagenumber)
    //    {
    //        ViewData["ReportType"] = type;
    //        if (_songReportRepository.GetAllReport(number, pagenumber, type) != null)
    //        {
    //            var model = _songReportRepository.GetAllReport(number, pagenumber, type);
    //            return PartialView(model);
    //        }
    //        else
    //        {
    //            return Redirect(Url.Content("~/Error"));
    //        }
    //    }
    //    //load dữ liệu của LyricReport
    //    public ActionResult LoadLyricReport(string type, int number, int pagenumber)
    //    {
    //        ViewData["ReportType"] = type;
    //        if (_songReportRepository.GetAllReport(number, pagenumber, type) != null)
    //        {
    //            var model = _songReportRepository.GetAllReport(number, pagenumber, type);
    //            return PartialView(model);
    //        }
    //        else
    //        {
    //            return Redirect(Url.Content("~/Error"));
    //        }
    //    }
    //    //load comment report
    //    public ActionResult LoadCommentReport(string type, int number, int pagenumber)
    //    {
    //        ViewData["ReportType"] = type;
    //        if (_songReportRepository.GetAllReport(number, pagenumber, type) != null)
    //        {
    //            var model = _songReportRepository.GetAllReport(number, pagenumber, type);
    //            return PartialView(model);
    //        }
    //        else
    //        {
    //            return Redirect(Url.Content("~/Error"));
    //        }
    //    }

    //    [HttpGet]
    //    public ActionResult SongReport(int id)
    //    {
    //        IEnumerable<SongReport> model = _songReportRepository.GetSongReport(id);
    //        int currentpage = 1;
    //        ViewData["NextPageNumber"] = currentpage+1;
    //        ViewData["CurrentPageNumber"] = currentpage;
    //        ViewData["PreviousPageNumber"] = currentpage-1;
    //        int sum = _songReportRepository.SumReport("1",id);
    //        int a = sum / 10;
    //        if (a * 10 < sum)
    //        {
    //            a++;
    //        }
    //        ViewData["TotalPageCount"] = a;

    //        return View(model);
    //    }
    //    [HttpPost]
    //    public ActionResult SongReport(int songid, int currentpage, int pagenumber)
    //    {
    //        IEnumerable<SongReport> model = _songReportRepository.GetSongReport(songid, currentpage, pagenumber);
    //        ViewData["NextPageNumber"] = currentpage + 1;
    //        ViewData["CurrentPageNumber"] = currentpage;
    //        ViewData["PreviousPageNumber"] = currentpage - 1;
    //        int sum = _songReportRepository.SumReport("1", songid);
    //        int a = sum / 10;
    //        if (a * 10 < sum)
    //        {
    //            a++;
    //        }
    //        ViewData["TotalPageCount"] = a;
    //        return View("SongReport", model);
    //    }

    //    [HttpGet]
    //    public ActionResult LyricReport(int songid, int lyricid)
    //    {
    //        IEnumerable<SongReport> model = _songReportRepository.GetLyricReport(songid, lyricid);

    //        ViewData["NextPageNumber"] = 2;
    //        ViewData["CurrentPageNumber"] = 1;
    //        ViewData["PreviousPageNumber"] = 0;
    //        int sum = _songReportRepository.SumReport("2", songid);
    //        int a = sum / 10;
    //        if (a * 10 < sum)
    //        {
    //            a++;
    //        }

    //        ViewData["TotalPageCount"] = a;
    //        return View(model);
    //    }

    //    [HttpPost]
    //    public ActionResult LyricReport(int songid, int lyricid, int currentpage, int pagenumber)
    //    {
    //        IEnumerable<SongReport> model = _songReportRepository.GetLyricReport(songid, lyricid, currentpage, pagenumber);
    //        ViewData["NextPageNumber"] = currentpage + 1;
    //        ViewData["CurrentPageNumber"] = currentpage;
    //        ViewData["PreviousPageNumber"] = currentpage - 1;
    //        int sum = _songReportRepository.SumReport("2", songid);
    //        int a = sum / 10;
    //        if (a * pagenumber < sum)
    //        {
    //            a++;
    //        }
    //        ViewData["TotalPageCount"] = a;
    //        return View(model);
    //    }

    //    [HttpGet]
    //    public ActionResult CommentReport(int commentid, int songid)
    //    {
    //        IEnumerable<SongReport> model = _songReportRepository.GetCommentReport(songid, commentid);

    //        ViewData["NextPageNumber"] = 2;
    //        ViewData["CurrentPageNumber"] = 1;
    //        ViewData["PreviousPageNumber"] = 0;
    //        int sum = _songReportRepository.SumReport("3", songid);
    //        int a = sum / 10;
    //        if (a * 10 < sum)
    //        {
    //            a++;
    //        }

    //        ViewData["TotalPageCount"] = a;
    //        return View(model);
    //    }

    //    [HttpPost]
    //    public ActionResult CommentReport(int commentid, int songid, int currentpage, int pagenumber)
    //    {
    //        IEnumerable<SongReport> model = _songReportRepository.GetCommentReport(songid, commentid, currentpage, pagenumber);
    //        ViewData["NextPageNumber"] = currentpage + 1;
    //        ViewData["CurrentPageNumber"] = currentpage;
    //        ViewData["PreviousPageNumber"] = currentpage - 1;
    //        int sum = _songReportRepository.SumReport("3", songid);
    //        int a = sum / 10;
    //        if (a * pagenumber < sum)
    //        {
    //            a++;
    //        }
    //        ViewData["TotalPageCount"] = a;
    //        return View(model);
    //    }

    //    [HttpPost]
    //    public ActionResult InsertBadWord(string BadWord, int lang)
    //    {
    //        var result = new ResultObject();
    //        if (!CheckExistBadWord(BadWord, lang))
    //        {
    //            _songReportRepository.AddBadWork(new BadWordsFilter()
    //            {
    //                Words = BadWord,
    //                Language = lang
    //            });
    //            result.Message = Resource.Song_SuccessfullyEvent;
    //            result.Result = true;
    //        }
    //        else
    //        {
    //            result.Message = Resource.Song_UpdateError;
    //        }
    //        return Json(result);
    //    }

    //    private bool CheckExistBadWord(string BadWord, int lang)
    //    {
    //        return _songReportRepository.CheckExistBadWord(BadWord, lang);
    //    }

    //    public JsonResult Delete(int Id)
    //    {
    //        _songReportRepository.DeleteReport(Id);

    //        return Json(true, JsonRequestBehavior.AllowGet);
    //    }
    //}
}
